#!/bin/bash

# 代码目录
codeDir=/root/apitest
mirrorUrl="https://pypi.tuna.tsinghua.edu.cn/simple"

clone_code() {
    echo "开始拉取代码"
    if [! git clone git@gitee.com:fantomo/apitest.git]; then
        echo "代码克隆失败，请检查网络连接、仓库地址是否正确以及 SSH 密钥配置（若使用 SSH 协议）等相关问题。"
        return 1  # 返回非0值表示函数执行出现问题
    fi
    return 0  # 表示代码克隆成功，返回0
}

run_test_case() {
  cd $codeDir
  echo "开始运行测试用例"
  python local.py 2>/dev/null
  echo "开始生成测试报告"
  #allure generate --lang zh ./temp -o /usr/share/nginx/html --clean
  rsync -a /root/apitest/reports/* /usr/share/nginx/html
  echo "测试报告生成完成"
}

install_package() {
    echo "开始安装依赖"
    if ! pip install -i "$mirrorUrl" -r requirements.txt; then
        echo "依赖包安装失败，请检查网络连接、requirements.txt 文件以及包的可用性等相关问题。"
        return 1  # 返回非0值表示函数执行出现问题
    fi
    return 0  # 安装成功返回0
}

while getopts ":e:" opt; do
  case $opt in
    e)
      args="$OPTARG"
      if [ "$args" == "pull" ]; then
        if [ ! -d $codeDir ]; then
          clone_code
        else
          echo "进入项目目录"
          cd $codeDir
          echo "开始更新代码"
          git pull
        fi
        cd $codeDir
        install_package
      else
        echo "参数错误"
      fi
      ;;
    :)
      echo "选项 -$OPTARG 需要一个参数值" >&2
      exit 1
      ;;
  esac
done
run_test_case